package co.edu.udea.xyz.bl;

import java.util.List;

import co.edu.udea.xyz.dto.Solicitud;
import co.edu.udea.xyz.dto.Sucursal;
import co.edu.udea.xyz.util.exception.BLInversionesException;
import co.edu.udea.xyz.util.exception.XYZException;

public interface SucursalService {
	
	/**
	 * Metodo que permite crear una sucursal en la base de datos
	 * @param idSucursal
	 * @param nombre
	 * @param direccion
	 * @param email
	 * @param Ciudad
	 * @param telefono
	 * @param pais
	 * @throws BLInversionesException
	 * @throws XYZException
	 */
	public void crearSucursal(int idSucursal, String nombre, String direccion, String email, String Ciudad, int telefono, String pais)throws BLInversionesException, XYZException;
	
	/**
	 * Metodo que permite actualizar una sucursal en la base de datos	
	 * @param idSucursal
	 * @param nombre
	 * @param direccion
	 * @param email
	 * @param Ciudad
	 * @param telefono
	 * @param pais
	 * @throws BLInversionesException
	 * @throws XYZException
	 */
	public void actualizarSucursal(int idSucursal, String nombre, String direccion, String email, String Ciudad, int telefono, String pais)throws BLInversionesException, XYZException;
	
	/**
	 * Metodo que permite obtener una sucursal de la base de datos
	 * @param idSucursal
	 * @return Sucursal
	 * @throws BLInversionesException
	 * @throws XYZException
	 */
	public Sucursal obtenerSucursal(int idSucursal)throws BLInversionesException, XYZException;
	
	/**
	 * Metodo que obtiene una lista de las sucursales de la base de datos 
	 * @return Lista de sucursales.
	 * @throws BLInversionesException
	 * @throws XYZException
	 */
	public List<Sucursal> obtenerListaSucursales()throws BLInversionesException, XYZException;

	/**
	 * Obtener la lista de las solicitudes realizadas en la sucursal por los clientes.
	 * @param sucursal
	 * @return Lista de Solicitudes
	 * @throws BLInversionesException
	 * @throws XYZException
	 */
	public List<Solicitud> obtenerSolicitudesSucursal(Sucursal sucursal)throws BLInversionesException, XYZException;
	
	
	
	
}
